package com.netease.nim.uikit.net.rxjava;


import com.netease.nim.uikit.net.entity.BannerBean;
import com.netease.nim.uikit.net.entity.BaseBean;
import com.netease.nim.uikit.net.entity.DTBean;
import com.netease.nim.uikit.net.entity.DetailListBean;
import com.netease.nim.uikit.net.entity.FriendsListBean;
import com.netease.nim.uikit.net.entity.IndexInfoBean;
import com.netease.nim.uikit.net.entity.InviteBean;
import com.netease.nim.uikit.net.entity.InviteInfoBean;
import com.netease.nim.uikit.net.entity.JJBean;
import com.netease.nim.uikit.net.entity.KeFuEntity;
import com.netease.nim.uikit.net.entity.LoginBean;
import com.netease.nim.uikit.net.entity.LookMemberListBean;
import com.netease.nim.uikit.net.entity.LookMemberResult;
import com.netease.nim.uikit.net.entity.MeGiftBean;
import com.netease.nim.uikit.net.entity.MemberBean;
import com.netease.nim.uikit.net.entity.MessageBean;
import com.netease.nim.uikit.net.entity.MsgTiShiBean;
import com.netease.nim.uikit.net.entity.OtherMsgBean;
import com.netease.nim.uikit.net.entity.PayResultBean;
import com.netease.nim.uikit.net.entity.RechargeBean;
import com.netease.nim.uikit.net.entity.RechargeBondBean;
import com.netease.nim.uikit.net.entity.SettingInfo;
import com.netease.nim.uikit.net.entity.ShouFei;
import com.netease.nim.uikit.net.entity.SuperVipBean;
import com.netease.nim.uikit.net.entity.SystemMsgBean;
import com.netease.nim.uikit.net.entity.TiXianNote;
import com.netease.nim.uikit.net.entity.TxBean;
import com.netease.nim.uikit.net.entity.UserBean;
import com.netease.nim.uikit.net.entity.VerifyBean;
import com.netease.nim.uikit.net.entity.VideoGiftBean;
import com.netease.nim.uikit.net.entity.WalletResult;
import com.netease.nim.uikit.net.entity.WishListBean;
import com.netease.nim.uikit.net.entity.WishMoney;
import com.netease.nim.uikit.net.entity.WishRecordBean;
import com.netease.nim.uikit.net.entity.WishXinLuBean;

import java.util.List;
import java.util.Map;

import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.POST;
import rx.Observable;

/**
 * Created by Administrator on 2017/9/13.
 */

interface APIService {

    /**
     * 0--注册获取验证码；1--修改密码和忘记密码获取验证码
     * 发送验证码接口
     *
     * @return
     */
    @POST("sendMsg.client")
    Observable<BaseBean> sendCode(@Body RequestBody requestBody);

    @POST("judgeMemberRelation.client")
    Observable<BaseBean<Map<String,String>>> judgeMemberRelation(@Body RequestBody requestBody);

    @POST("checkMessageCode.client")
    Observable<BaseBean> checkCode(@Body RequestBody requestBody);

    /**
     * 请求地址：/registerMember.client
     * 注册
     *
     * @return
     */
    @POST("registerMember.client")
    Observable<BaseBean> register(@Body RequestBody requestBody);

    /**
     * 请求地址：/registerMemberNew.client
     * 注册
     *
     * @return
     */
    @POST("registerMemberNew.client")
    Observable<BaseBean> registerMemberNew(@Body RequestBody requestBody);

    /**
     * 微信注册
     * @param requestBody
     * @return
     */
    @POST("registerWeChat.client")
    Observable<BaseBean<LoginBean>> registerWeChat(@Body RequestBody requestBody);

    /**
     * 微信注册
     * @param requestBody
     * @return
     */
    @POST("registerWeChatNew.client")
    Observable<BaseBean<LoginBean>> registerWeChatNew(@Body RequestBody requestBody);


    /**
     * 请求地址：memberLogin.client
     * 注册
     *
     * @return
     */
    @POST("loginMember.client")
    Observable<BaseBean<LoginBean>> login(@Body RequestBody requestBody);

    /**
     * 请求地址：authorLogin.client
     * 注册
     *
     * @return
     */
    @POST("authorLogin.client")
    Observable<BaseBean<LoginBean>> authorLogin(@Body RequestBody requestBody);


    /**
     * 请http://47.92.161.117/getSuperVipInfo.client
     * 注册
     *
     * @return
     */
    @POST("getSuperVipInfo.client")
    Observable<BaseBean<SuperVipBean>> getSuperVipInfo();
    /**
     * 请求地址：memberLogin.client
     * 注册
     *
     * @return
     */
    @POST("getWalletInfo.client")
    Observable<BaseBean<RechargeBean>> getWalletInfo(@Body RequestBody requestBody);
    /**
     * 请求地址：memberLogin.client
     * 注册
     *
     * @return
     */
    @POST("tiXian.client")
    Observable<BaseBean> tiXian(@Body RequestBody requestBody);

    /**
     * 请求地址：memberLogin.client
     * 注册
     *
     * @return
     */
    @POST("listTiXian.client")
    Observable<BaseBean<List<TiXianNote>>> listTiXian(@Body RequestBody requestBody);
    /**
     * 请求地址：updateTiXianInfo.client
     * 注册
     *
     * @return
     */
    @POST("updateTiXianInfo.client")
    Observable<BaseBean> updateTiXianInfo(@Body RequestBody requestBody);
    /**
     * 请求地址：memberLogin.client
     * 注册
     *
     * @return
     */
    @POST("getMemberTiXianInfo.client")
    Observable<BaseBean<TxBean>> getInfoByMemberId(@Body RequestBody requestBody);
    /**
     * 请求地址：memberLogin.client
     * 注册
     *
     * @return
     */
    @POST("getInfoByMemberId.client")
    Observable<BaseBean<VerifyBean>> verify(@Body RequestBody requestBody);
    /**
     * 请求地址：memberLogin.client
     * 注册
     *
     * @return
     */
    @POST("checkMsg.client")
    Observable<BaseBean> checkMsg(@Body RequestBody requestBody);
    /**
     * http://47.92.161.117/getOtherMemberInfo.client
     * 注册
     *
     * @return
     */
    @POST("getOtherMemberInfo.client")
    Observable<BaseBean<OtherMsgBean>> getOtherMemberInfo(@Body RequestBody requestBody);
    /**
     * 请求地址：forgetPassword.client
     * 注册
     *
     * @return
     */
    @POST("forgetPassword.client")
    Observable<BaseBean> forget(@Body RequestBody requestBody);
    /**
     * http://47.92.161.117/listDynamic.client
     * 动态列表
     *
     * @return
     */
    @POST("listDynamic.client")
    Observable<BaseBean<List<DTBean>>> dt_list(@Body RequestBody requestBody);

    /**
     * http://47.92.161.117/listVedio.client
     * 动态列表
     *
     * @return
     */
    @POST("listVedio.client")
    Observable<BaseBean<List<DTBean>>> listVedio(@Body RequestBody requestBody);



    /**
     * http://47.92.161.117/listDynamicPaiHangBang.client
     * 动态列表
     *
     * @return
     */
    @POST("listDynamicPaiHangBang.client")
    Observable<BaseBean<List<DTBean>>> listDynamicPaiHangBang(@Body RequestBody requestBody);



    /**
     * http://47.92.161.117/deleteDongTai.client
     * 动态列表
     *
     * @return
     */
    @POST("deleteDongTai.client")
    Observable<BaseBean> deleteDongTai(@Body RequestBody requestBody);
    /**
     * http://47.92.161.117/gzListDynamic.client
     * 动态列表
     *
     * @return
     */
    @POST("gzListDynamic.client")
    Observable<BaseBean<List<DTBean>>> dt_gz_list(@Body RequestBody requestBody);
    /**
     * http://47.92.161.117/tcListDynamic.client
     * 动态列表
     *
     * @return
     */
    @POST("tcListDynamic.client")
    Observable<BaseBean<List<DTBean>>> tcListDynamic(@Body RequestBody requestBody);

    /**
     * http://47.92.161.117/getTuiJianList.client
     * 动态列表
     *
     * @return
     */
    @POST("getTuiJianList.client")
    Observable<BaseBean<List<MemberBean>>> getTuiJianList();

    /**
     * http://47.92.161.117/getTuiJianList.client
     * 动态列表
     *
     * @return
     */
    @POST("getTuiJianListPage.client")
    Observable<BaseBean<List<MemberBean>>> getTuiJianListPage(@Body RequestBody requestBody);

    /**
     * http://47.92.161.117/createDynamic.client
     * 添加动态
     *
     * @return
     */
    @POST("createDynamic.client")
    Observable<BaseBean> createDynamic(@Body RequestBody requestBody);
    /**
     * http://47.92.161.117/createWish.client
     * 添加动态
     *
     * @return
     */
    @POST("createWish.client")
    Observable<BaseBean> createWish(@Body RequestBody requestBody);
    /**
     * http://47.92.161.117/createWish.client
     * 添加动态
     *
     * @return
     */
    @POST("saveWishXinLu.client")
    Observable<BaseBean> saveWishXinLu(@Body RequestBody requestBody);
    /**
     * saveDianZan.client
     * 点赞
     *
     * @return
     */
    @POST("saveDianZan.client")
    Observable<BaseBean> saveDianZan(@Body RequestBody requestBody);
    /**
     * savePingLun.client
     * 评论
     *
     * @return
     */
    @POST("savePingLun.client")
    Observable<BaseBean> savePingLun(@Body RequestBody requestBody);
    /**
     *  http://47.92.161.117/listPingLun.client
     * 动态列表
     *
     * @return
     */
    @POST("listPingLun.client")
    Observable<BaseBean<List<MessageBean>>> listPingLun(@Body RequestBody requestBody);

    /**
     *  http://47.92.161.117/listPingLun.client
     * 动态列表
     *
     * @return
     */
    @POST("getDongTaiById.client")
    Observable<BaseBean<DTBean>> getDongTaiById(@Body RequestBody requestBody);



    /**
     *  http://47.92.161.117/getWishById.client
     * 动态列表
     *
     * @return
     */
    @POST("getWishById.client")
    Observable<BaseBean<WishListBean>> getWishById(@Body RequestBody requestBody);



    /**
     * 删除评论
     */
    @POST("delPingLun.client")
    Observable<BaseBean> delPingLun(@Body RequestBody requestBody);

    /**
     *  http://47.92.161.117/listPingLun.client
     * 动态列表
     *
     * @return
     */
    @POST("getBannerList.client")
    Observable<BaseBean<List<BannerBean>>> getBannerList(@Body RequestBody requestBody);


    /**
     *  http://47.92.161.117/getCityMember.client
     * 动态列表
     *
     * @return
     */
    @POST("getCityMember.client")
    Observable<BaseBean<List<MemberBean>>> getCityMember(@Body RequestBody requestBody);


    /**
     *  http://47.92.161.117/listPingLun.client
     * 动态列表
     *
     * @return
     */
    @POST("getUnreadSystemNumber.client")
    Observable<BaseBean<Integer>> getUnreadSystemNumber(@Body RequestBody requestBody);


    /**
     *  http://47.92.161.117/listChargeGold.client
     * 动态列表
     *
     * @return
     */
    @POST("listChargeGold.client")
    Observable<BaseBean<List<RechargeBondBean>>> listChargeGold();
    /**
     *  http://47.92.161.117/listChargeGold.client
     * 动态列表
     *
     * @return
     */
    @POST("listChargeVip.client")
    Observable<BaseBean<List<RechargeBondBean>>> listChargeVip();
    /**
     *  http://47.92.161.117/listPingLun.client
     * 动态列表
     *
     * @return
     */
    @POST("listWishHelp.client")
    Observable<BaseBean<List<WishRecordBean>>> listWishHelp(@Body RequestBody requestBody);

    /**
     *  http://47.92.161.117/listWishXinLu.client
     * 动态列表
     *
     * @return
     */
    @POST("listWishXinLu.client")
    Observable<BaseBean<List<WishXinLuBean>>> listWishXinLu(@Body RequestBody requestBody);

    /**
     *  http://47.92.161.117/delWishXinLu.client
     * 动态列表
     *
     * @return
     */
    @POST("delWishXinLu.client")
    Observable<BaseBean> delWishXinLu(@Body RequestBody requestBody);


    /**
     *  http://47.92.161.117/listPingLun.client
     * 动态列表
     *
     * @return
     */
    @POST("listPresent.client")
    Observable<BaseBean<List<VideoGiftBean>>> listPresent();
    /**
     * http://47.92.161.117/daShangPresent.client
     * 评论
     *
     * @return
     */
    @POST("daShangPresent.client")
    Observable<BaseBean> daShangPresent(@Body RequestBody requestBody);
    /**
     * http://47.92.161.117/getMemberCenterInfo.client
     * 个人中心
     *
     * @return
     */
    @POST("getMemberCenterInfo.client")
    Observable<BaseBean<UserBean>> getMemberCenterInfo(@Body RequestBody requestBody);
    /**
     * http://47.92.161.117/getMemberCenterInfo.client
     * 个人中心
     *
     * @return
     */
    @POST("updatePrice.client")
    Observable<BaseBean> updatePrice(@Body RequestBody requestBody);


    /**
     * http://47.92.161.117/submitAdvice.client
     * 个人中心
     *
     * @return
     */
    @POST("submitAdvice.client")
    Observable<BaseBean> submitAdvice(@Body RequestBody requestBody);

    /**
     * http://47.92.161.117/saveJuBao.client
     * 个人中心
     *
     * @return
     */
    @POST("saveJuBao.client")
    Observable<BaseBean> saveJuBao(@Body RequestBody requestBody);

    /**
     * http://47.92.161.117/zhuXiaoAccount.client
     * 个人中心
     *
     * @return
     */
    @POST("zhuXiaoAccount.client")
    Observable<BaseBean> zhuXiaoAccount(@Body RequestBody requestBody);



    /**
     * http://47.92.161.117/bindCode.client
     * 个人中心
     *
     * @return
     */
    @POST("bindCode.client")
    Observable<BaseBean<String>> bindCode(@Body RequestBody requestBody);

    /**
     * http://47.92.161.117/getMemberCenterInfo.client
     * 个人中心
     *
     * @return
     */
    @POST("bindMobile.client")
    Observable<BaseBean> bindMobile(@Body RequestBody requestBody);

    @POST("getSettingInfo.client")
    Observable<BaseBean<SettingInfo>> getSettingInfo(@Body RequestBody requestBody);


    /**
     * http://47.92.161.117/getVersionInfo.client
     * 个人中心
     *
     * @return
     */
    @POST("getVersionInfo.client")
    Observable<BaseBean<VersionBean>> getVersionInfo();

    /**
     * http://47.92.161.117/getIndexInfo.client
     * 个人中心
     *
     * @return
     */
    @POST("getIndexInfo.client")
    Observable<BaseBean<IndexInfoBean>> getIndexInfo(@Body RequestBody requestBody);


    /**
     * http://47.92.161.117/getHongBaoShow.client
     * 红包
     *
     * @return
     */
    @POST("getHongBaoShow.client")
    Observable<BaseBean> getHongBaoShow(@Body RequestBody requestBody);

    /**
     * http://47.92.161.117/getHongBaoShow.client
     * 红包
     *
     * @return
     */
    @POST("heartConnect.client")
    Observable<BaseBean> heartConnect(@Body RequestBody requestBody);



    /**
     * http://47.92.161.117/getMemberCenterInfo.client
     * 个人中心
     *
     * @return
     */
    @POST("getTanChuMsg.client")
    Observable<BaseBean<String>> getTanChuMsg(@Body RequestBody requestBody);

    /**
     * http://47.92.161.117/getYwjjInfo.client
     * 个人中心
     *
     * @return
     */
    @POST("getYwjjInfo.client")
    Observable<BaseBean<JJBean>> getYwjjInfo(@Body RequestBody requestBody);
    /**
     * http://47.92.161.117/duiHuanYyjj.client
     * 个人中心
     *
     * @return
     */
    @POST("duiHuanYyjj.client")
    Observable<BaseBean> duiHuanYyjj(@Body RequestBody requestBody);
    /**
     * http://47.92.161.117/duiHuanYyjj.client
     * 个人中心
     *
     * @return
     */
    @POST("jiaSuMember.client")
    Observable<BaseBean<String>> fridJiaSu(@Body RequestBody requestBody);
//    /**
//     * http://47.92.161.117/getInfoByMemberId.client
//     * 个人中心
//     *
//     * @return
//     */
//    @POST("getInfoByMemberId.client")
//    Observable<BaseBean<VerifyBean>> getInfoByMemberId(@Body RequestBody requestBody);
    /**
     * http://47.92.161.117/getInfoByMemberId.client
     * 个人中心
     *
     * @return
     */
    @POST("trueNameRengZheng.client")
    Observable<BaseBean> trueNameRengZheng(@Body RequestBody requestBody);
    /**
     *  http://47.92.161.117/updateMember.client
     * 个人中心
     *
     * @return
     */
    @POST("updateMember.client")
    Observable<BaseBean> updateMember(@Body RequestBody requestBody);
    /**
     *   http://47.92.161.117/callMember.client
     * 个人中心
     *
     * @return
     */
    @POST("callMember.client")
    Observable<BaseBean<String>> callMember(@Body RequestBody requestBody);
    /**
     *   http://47.92.161.117/saveGuanZhu.client
     * 个人中心
     *
     * @return
     */
    @POST("saveGuanZhu.client")
    Observable<BaseBean> saveGuanZhu(@Body RequestBody requestBody);


    /**
     *   http://47.92.161.117/saveHeiMingDan.client
     * 个人中心
     *
     * @return
     */
    @POST("saveHeiMingDan.client")
    Observable<BaseBean> saveHeiMingDan(@Body RequestBody requestBody);

    /**
     * http://47.92.161.117/listWish.client
     * 动态列表
     *
     * @return
     */
    @POST("listWish.client")
    Observable<BaseBean<List<WishListBean>>> listWish(@Body RequestBody requestBody);


    /**
     * http://47.92.161.117/listWish.client
     * 动态列表
     *
     * @return
     */
    @POST("getShouFeiInfo.client")
    Observable<BaseBean<ShouFei>> getShouFeiInfo(@Body RequestBody requestBody);


    /**
     * http://47.92.161.117/listWish.client
     * 动态列表
     *
     * @return
     */
    @POST("getWishMoney.client")
    Observable<BaseBean<String>> getWishMoney(@Body RequestBody requestBody);

    /**
     * 查看
     * @param requestBody
     * @return
     */
    @POST("getLookMeMember.client")
    Observable<BaseBean<LookMemberResult>> getLookMeMember(@Body RequestBody requestBody);


    /**
     * 消息
     */
    @POST("listPushMsg.client")
    Observable<BaseBean<List<SystemMsgBean>>> listPushMsg(@Body RequestBody requestBody);
    /**
     * 消息
     */
    @POST("getMsgTipNum.client")
    Observable<BaseBean<MsgTiShiBean>> getMsgTipNum(@Body RequestBody requestBody);

    /**
     * 赞提醒
     */
    @POST("listZanMsg.client")
    Observable<BaseBean<List<SystemMsgBean>>> listZanMsg(@Body RequestBody requestBody);

    /**
     * 赞提醒
     */
    @POST("listWishMsg.client")
    Observable<BaseBean<List<SystemMsgBean>>> listWishMsg(@Body RequestBody requestBody);


    /**
     * 关注消息
     */
    @POST("listGuanZhunMsg.client")
    Observable<BaseBean<List<SystemMsgBean>>> listGuanZhunMsg(@Body RequestBody requestBody);

    /**
     * 查看
     * @param requestBody
     * @return
     */
    @POST("getShareMember.client")
    Observable<BaseBean<List<LookMemberListBean>>> getShareMember(@Body RequestBody requestBody);


    /**
     * 查看
     * @param requestBody
     * @return
     */
    @POST("getSearchMeMember.client")
    Observable<BaseBean<List<LookMemberListBean>>> getSearchMeMember(@Body RequestBody requestBody);

    /**
     * 黑名单列表
     */
    @POST("heiMingDanMemberList.client")
    Observable<BaseBean<List<MemberBean>>> heiMingDanMemberList(@Body RequestBody requestBody);


    /**
     * 查看
     * @param requestBody
     * @return
     */
    @POST("getSignList.client")
    Observable<BaseBean<List<KeFuEntity>>> getSignList(@Body RequestBody requestBody);



    /**
     * http://47.92.161.117/getGuanZhuMember.client
     * 动态列表
     *
     * @return
     */
    @POST("getGuanZhuMember.client")
    Observable<BaseBean<List<FriendsListBean>>> getGuanZhuMember(@Body RequestBody requestBody);
    /**
     * http://47.92.161.117/getGuanZhuMember.client
     * 动态列表
     *
     * @return
     */
    @POST("receiverLiWu.client")
    Observable<BaseBean<List<MeGiftBean>>> receiverLiWu(@Body RequestBody requestBody);
    /**
     * http://47.92.161.117/getMyFenSi.client
     * 动态列表
     *
     * @return
     */
    @POST("getMyFenSi.client")
    Observable<BaseBean<List<FriendsListBean>>> getMyFenSi(@Body RequestBody requestBody);
    /**
     * http://47.92.161.117/getMyFriend.client
     * 动态列表
     *
     * @return
     */
    @POST("getMyFriend.client")
    Observable<BaseBean<List<FriendsListBean>>> getMyFriend(@Body RequestBody requestBody);
    /**
     * http://47.92.161.117/listTiXianItem.client
     * 动态列表
     *
     * @return
     */
    @POST("listTiXianItem.client")
    Observable<BaseBean<WalletResult>> listTiXianItem(@Body RequestBody requestBody);
    /**
     * http://47.92.161.117/listCashNote.client
     * 动态列表
     *
     * @return
     */
    @POST("listCashNote.client")
    Observable<BaseBean<List<DetailListBean>>> listCashNote(@Body RequestBody requestBody);


    /**
     * http://47.92.161.117/listInviteList.client
     * 获取邀请列表
     *
     * @return
     */
    @POST("listInviteList.client")
    Observable<BaseBean<List<InviteBean>>> listInviteList(@Body RequestBody requestBody);

    /**
     * http://47.92.161.117/getInviteInfo.client
     * 获取邀请信息
     *
     * @return
     */
    @POST("getInviteInfo.client")
    Observable<BaseBean<InviteInfoBean>> getInviteInfo(@Body RequestBody requestBody);



    /**
     * http://47.92.161.117/saveWishHelp.client
     * saveWishHelp
     *
     * @return
     */
    @POST("saveWishHelp.client")
    Observable<BaseBean> saveWishHelp(@Body RequestBody requestBody);

    @POST("deleteWish.client")
    Observable<BaseBean> deleteWish(@Body RequestBody requestBody);

    @POST("finishWish.client")
    Observable<BaseBean> finishWish(@Body RequestBody requestBody);


    /**
     *http://47.92.161.117/updateWishHelp.client
     * saveWishHelp
     *
     * @return
     */
    @POST("updateWishHelp.client")
    Observable<BaseBean> updateWishHelp(@Body RequestBody requestBody);
    /**
     * 请求地址：memberLogin.client
     * 注册
     *
     * @return
     */
    @POST("createOrder.client")
    Observable<BaseBean<PayResultBean>> createOrder(@Body RequestBody requestBody);
    /**
     * http://47.92.161.117/lookSiMiPic.client
     * 注册
     *
     * @return
     */
    @POST("lookSiMiPic.client")
    Observable<BaseBean> lookSiMiPic(@Body RequestBody requestBody);


    /**
     * http://47.92.161.117/getSharkNumbers.client获取摇一摇次数
     * @return
     */
    @POST("getSharkNumbers.client")
    Observable<BaseBean<String>> getSharkNumbers(@Body RequestBody requestBody);

    @POST("yaoYiYao.client")
    Observable<BaseBean<String>> yaoYiYao(@Body RequestBody requestBody);



    /**
     * http://47.92.161.117/lookSiMiPic.client
     * 注册
     *
     * @return
     */
    @POST("getSiMiPriceByMemberId.client")
    Observable<BaseBean<String>> getSiMiPriceByMemberId(@Body RequestBody requestBody);

    /**
     *  http://47.92.161.117/getMemberInfoByMemberId.client
     * 动态列表
     *
     * @return
     */
    @POST("getMemberInfoByMemberId.client")
    Observable<BaseBean<MemberBean>> getMemberInfoByMemberId(@Body RequestBody requestBody);

    @POST("getDictionaryItemList.client")
    Observable<BaseBean<List<KeFuEntity>>> getDictionaryItemList(@Body RequestBody requestBody);


}
